/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package agenda.de.eventos.entidades;


import agenda.de.eventos.controlador.*;
import java.io.IOException;
import java.util.Properties;
import java.util.Date;

/**
 *
 * @author Pedro Igor Jatobá
 * 
 * A Classe Evento define os atributos de um evento e alguns metodos como o de 
 * atualizacao desses eventos.
 */
public class Evento{

	protected String horaInicio;
        protected String horaFim;
	protected String nome;
	protected String local;
	protected String classificacao;
	protected String atracao;
	protected String detalhes;
        protected String stringParaTipo;
        protected TipoDoEvento tipoEvento;
        protected Date data;
        
        
        protected Evento(){
            
            this.nome = "Inicial";
            this.local = "Inicial";
            this.horaInicio = "Inicial";
            this.horaFim = "Inicial";
            this.classificacao = "Inicial";
            this.atracao = "Inicial";
            this.stringParaTipo = "Inicial";;
            this.tipoEvento = TipoDoEvento.TODOS;
            this.detalhes = "Inicial";
            this.data = null;
        
        }
        
        /**
         * Metodo: AtualizarEvento
         * Autor: Pedro Jatoba
         * Modificadores: 
         * Oque faz: Utiliza o objeto "props" da clase Properties para atualizar
         * o objeto "eventoAtual" com os valores descritos nos documentos de texto
         * (Ex: Evento0.txt).
        */
        protected void atualizarEvento(Evento eventoAtual, int numeroDoEvento) throws IOException  {
                   
                System.out.println("Lendo Evento"+ numeroDoEvento +":");
                Properties props = Propriedades.getProp(numeroDoEvento);

                eventoAtual.nome = props.getProperty("nome");
                eventoAtual.local = props.getProperty("local");
                eventoAtual.horaInicio = props.getProperty("horaInicio");
                eventoAtual.horaFim = props.getProperty("horaFim");
                eventoAtual.classificacao = props.getProperty("classificacao");
                eventoAtual.atracao = props.getProperty("atracao");
                eventoAtual.stringParaTipo = props.getProperty("stringParaTipo");
                eventoAtual.tipoEvento = transformador(eventoAtual.stringParaTipo);
                eventoAtual.detalhes = props.getProperty("detalhes");
        }      
        

        /**
         * Metodo: Transformador
         * Autor: Pedro Jatoba
         * Modificadores: 
         * Oque faz: Seleciona qual deve ser o "tipoDoEvento" a partir da string 
         * "stringParaTipo" comparando o seu texto com as opcoes de tipo.
        */
        protected TipoDoEvento transformador(String stringParaTipo){
            TipoDoEvento tipoDoEvento = null;    
                
                if(stringParaTipo.equals("SHOW")){
                    tipoDoEvento = TipoDoEvento.SHOW;
                }
                
                if(stringParaTipo.equals("TEATRO")){
                    tipoDoEvento = TipoDoEvento.TEATRO;
                }
                
                if(stringParaTipo.equals("CULTURAL")){
                    tipoDoEvento = TipoDoEvento.CULTURAL;
                }
                
                if(stringParaTipo.equals("INFANTIL")){
                    tipoDoEvento = TipoDoEvento.INFANTIL;
                }
                
                if(stringParaTipo.equals("PALESTRAS")){
                    tipoDoEvento = TipoDoEvento.PALESTRAS;
                }
                
                if(stringParaTipo.equals("BOATE")){
                    tipoDoEvento = TipoDoEvento.BOATE;
                }
                
                if(stringParaTipo.equals("TODOS")){
                    tipoDoEvento = TipoDoEvento.TODOS;                            
                }
     
            return tipoDoEvento;
        }
        
        
        

}